﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Remoting.Messaging;
using MessageCallAspect.Inspector.MessageSink;

namespace MessageCallAspect.Inspector.Attributes
{
    [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = true, Inherited = true)]
    public abstract class MessageSinkAttribute : Attribute, IMessageSinkCreator
    {
        #region IMessageSinkCreator Members

        public int Order { get; set; }

        public abstract IMessageSink CreateMessageSink(IModuleContext context, object target, IMessageSink nextSink);

        #endregion

        #region IDisposable Members

        public void Dispose()
        {

        }

        #endregion
    }
}
